<?php

/*******************************************************
 *  用户查询测试
 *
 * 接口名称：
 * 		用户查询
 * 使用场景：
 * 		用户开户后，查询开户状态。也可以用来查询绑卡状态。
 * 仅用于纯代付业务（快捷等业务无需对接）。
 *******************************************************/


//参数设置
$cardno = '';//虚拟账号,非商户号(18位的数字，联系业务获取)
$key = '';//代付密钥,非交易密钥(32位的字母+数字，联系业务获取)
$url = 'http://settle.xxx.com/openQuery.do';//接口地址(联系业务获取)
$uuid = md5(uniqid(mt_rand(), true));//商家平台的唯一请求号(仅用于日志查询，众益健康不记录)

//构造请求数据
$request = array(
	//必填项
    'uuid' => $uuid,//自定义流水号
    'cardno' => $cardno,//虚拟账号
	'certno' => '000000000000000000',//身份证号
	'cardno' => '6220001234567890',//银行卡卡号
);

//拼接上送的数据
$src='';
ksort($request);
foreach ($request as $x => $x_value){
    if ($x_value != null){
        $src = $src.$x."=".iconv('UTF-8','GBK//IGNORE',$x_value)."&"; //采用本方法进行GBK编码
    }
}
$md5=md5($src.$key);
echo "签名结果:<br/>".$md5."<br/>";

//数据通讯
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $src.'signature'.'='.$md5);
$response = curl_exec($curl);
curl_close($curl);

//打印结果
echo "返回结果:<br/>".iconv('GBK//IGNORE', 'UTF-8', $response);//使用GBK编码进行转码